package leetcode.year2021.month11;
// 283 移动零
public class _07_3MoveZeroes283 {
  // 使用双指针, 为零则补
  public void moveZeroes(int[] nums) {
    int left = 0;
    int right = 0;
    int n = nums.length;
    while (right < n){
      if (nums[right] != 0){
        swap(nums,left,right);
        left++;
      }
      right++;
    }
  }

  public void swap(int[] nums, int i, int j){
    int temp = nums[i];
    nums[i] = nums[j];
    nums[j] = temp;
  }

  /**
   *283. 移动零
   * 给定一个数组 nums，编写一个函数将所有 0 移动到数组的末尾，同时保持非零元素的相对顺序。
   *
   * 示例:
   *
   * 输入: [0,1,0,3,12]
   * 输出: [1,3,12,0,0]
   * 说明:
   *
   * 必须在原数组上操作，不能拷贝额外的数组。
   * 尽量减少操作次数。
   * 通过次数526,911提交次数823,396
   */
}
